/**
 * 
 */
package com.yidu.erp.action.hetonghch;

import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import javax.annotation.Resource;


import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;


import com.yidu.common.Pages;
import com.yidu.common.SsmMessage;
import com.yidu.erp.model.BeyondApply;
import com.yidu.erp.model.BeyondDepartment;
import com.yidu.erp.model.BeyondDos;
import com.yidu.erp.model.BeyondPact;
import com.yidu.erp.model.BeyondPactDosingList;
import com.yidu.erp.model.BeyondPactlist;
import com.yidu.erp.model.BeyondWare;
import com.yidu.erp.service.hetonghch.ApplyService;
import com.yidu.erp.service.hetonghch.PactDosinglistService;
import com.yidu.erp.service.hetonghch.PactService;
import com.yidu.erp.service.hetonghch.PactlistService;
import com.yidu.erp.service.hetonghch.DosService;
import com.yidu.erp.service.ware.WareService;

/**
 * 合同列表
 * @authorHuangChaoheng
 * @Dete2017年10月23日 上午9:46:41
 */
@Controller
@RequestMapping("Pact")
public class PactAction {
	
	@Resource
	private PactService pactService;//合同表
	
	@Resource
	private ApplyService applyService;//供货商
	
	@Resource
	private PactlistService pactlistService;//合同商品表
	
	@Resource
	private PactDosinglistService pactDosinglistService;//合同配料表
	
	@Resource
	private WareService wareService;//商品表
	
	@Resource
	private DosService dosService;//配料表
	
	/**
	 * 显示
	 * @return
	 */
	@RequestMapping("/listPact")
	@ResponseBody
	public Map<String,Object> listPact(@RequestParam Map<String, Object> pact, int limit, int page){ 
		//分页
		if(limit!=0 && page!=0){
			//new一个对象
			Pages pages = new Pages();
			pages.setMaxResult(limit);
			pages.setCurPage(page);
			pact.put("pages", pages);
		}
		return pactService.listPact(pact);
	}
	
	
	
	/**
	 * 删除  
	 * @param pactId 部门id
	 * @return
	 */
	@RequestMapping("delete")
	@ResponseBody
	public SsmMessage delete(String pactId){
		//new一个Ssmessage
		SsmMessage mes = new SsmMessage();
		//根据合同ID删除
		int rows = pactService.delete(pactId);
		//判断是否删除
		if(rows>0){
			//SUCCESS_MES删除成功
			mes.setMes(SsmMessage.SUCCESS_MES);
			mes.setState(SsmMessage.SUCCESS);
		}else{
			//ERROR_MES删除失败
			mes.setMes(SsmMessage.ERROR_MES);
			mes.setState(SsmMessage.ERROR);
		}
		//返回值
		return mes;
	}
	
	/**
	 * 增加
	 * @param patc
	 * @return
	 */
	@RequestMapping("addOrUpdate")
	@ResponseBody
	public SsmMessage addOrUpdate(BeyondPact pact,String applyName,String str,String type){
		System.out.println("进入增加修改方法=============================="+str);
		//new一个SsmMessage
		SsmMessage mes = new SsmMessage();
		//当增加时自动生成ID
		String sid=UUID.randomUUID().toString();
		//增加时，如果时间为空取时间去当前时间
		if(pact.getPactSigntime()==null && "".equals(pact.getPactSigntime())){
			
		}
		//取供货商ID
		pact.setApplyId(applyName);
		//根据pact进入方法
		int rows = pactService.addOrUpdate(pact);
		
		if(rows>0){
			//SUCCESS_MES修改成功
			mes.setMes(SsmMessage.SUCCESS_MES);
			mes.setState(SsmMessage.SUCCESS);
		}else{
			//ERROR_MES修改失败
			mes.setMes(SsmMessage.ERROR_MES);
			mes.setState(SsmMessage.ERROR);
		}
		//new一个合同表对象
		BeyondPact beyondPact=new BeyondPact();
		//合同ID为自动增长
		beyondPact.setPactId(sid);
		//传一个供货商ID
		beyondPact.setApplyId(applyName);
		//传一个Title
		beyondPact.setPactTitle(pact.getPactTitle());
		//传一个Number
		beyondPact.setPactNumber(pact.getPactNumber());
		//传一个时间
		beyondPact.setPactSigntime(pact.getPactSigntime());
		beyondPact.setPactText(pact.getPactText());
		//传一个合同甲方名字
		beyondPact.setPartaName(pact.getPartaName());
		//传一个合同乙方名字
		beyondPact.setPartbName(pact.getPartbName());
		//传一个Endtime
		beyondPact.setPactEndtime(pact.getPactEndtime());
		//传一个Type
		beyondPact.setPactType(pact.getPactType());
		
		//&分割填充到data、数组中
		String[] data=str.split("&");
		//循环date
		for (int i = 0; i < data.length; i++) {
			//字符串temp等于数组第i个值
			String temp=data[i];
			//用#隔开
			String arr[]=temp.split("#");
			System.out.println("  数据为:    "+arr[0]+"     "+arr[1]);
			//当type=1时增加到合同商品列表
		    if(type.equals("1")){
		    	//new一个合同商品
		    	BeyondPactlist beyondPactlist=new BeyondPactlist();
		    	//合同商品ID为自动增长
		    	String beyondPactlistId=UUID.randomUUID().toString();
		    	//合同上商品ID
		    	beyondPactlist.setPactlistId(beyondPactlistId);
		    	//商品ID用arr[0]隔开
		    	beyondPactlist.setWareId(arr[0]);
		    	//合同表用sid
		    	beyondPactlist.setPactId(sid);
		    	//根据beyondPactlist来增加
		    	pactlistService.insertSelective(beyondPactlist);
		    	//当type=2时增加到合同配料
		    }else if(type.equals("2")){
		    	//new一个合同配料
		    	BeyondPactDosingList beyondPactDosingList=new BeyondPactDosingList();
				//合同配料ID为自动增加
		    	String ssid=UUID.randomUUID().toString();
		    	//调用自动增长方法
				beyondPactDosingList.setPactDosingId(ssid);
				//用pact来增加
				beyondPactDosingList.setPactId(pact.getPactId());
				//合同配料ID用arr[0]隔开
				beyondPactDosingList.setDosId(arr[0]);
				//根据方法来增加
				pactDosinglistService.insertSelective(beyondPactDosingList);
		    }
		}
		//mes=1时成功
		mes.setState(1);
		mes.setMes("OK");
		//返回一个mes
		return mes;
	}
	
	
	/**
	 * 根据id查询
	 * @param pactId 部门id
	 * @return
	 */
	@RequestMapping("pactId")
	@ResponseBody
	public BeyondPact pacteId(String pactId){
		//根据ID来查询
		return pactService.pacteId(pactId);
	}
	
	/**
	 * 下拉框获取信息
	 * @return
	 */
	@RequestMapping("queryApply")
	@ResponseBody
	public List<BeyondApply> queryApply(){
		//调用List方法
		List<BeyondApply> list=applyService.selectApply();
		//循环list
		for(int i=0;i<list.size();i++){
			//根据
			BeyondApply beyondApply=list.get(i);
			
		}
		//返回一个list
		return list;
	}
	
	/**
	 * 查询药品合同
	 * @return
	 */
	@RequestMapping("selectPact")
	@ResponseBody
	public Map<String,Object> selectPact(String applyId){
		System.out.println("进入方法----------------查询ID为:       "+applyId);
		//调用List
		List<BeyondWare> list=wareService.findByApplyId(applyId);
		System.out.println("+++++++++++++++");
		//循环list
		for(int i=0;i<list.size();i++){
			//根据商品
			BeyondWare beyondware=list.get(i);
			System.out.println("商品名为:             "+beyondware.getWareName());
			
		}
		System.out.println("商品集合为:               "+list);
		//new一个Map对象
		Map<String,Object> map=new HashMap<String,Object>();
		map.put("status",200);
		map.put("message","result");
		map.put("data",list);
		//返回一个map
		return map;
	}
	
	/**
	 * 商品
	 * @param wareId
	 * @return
	 */
	@RequestMapping("addWare")
	@ResponseBody
	public BeyondWare addWare(String wareId){
		System.out.println("商品ID"    +wareId);
		//根据商品ID来产销
		BeyondWare ware=wareService.selectByPrimaryKey(wareId);
		System.out.println("商品名字"     +ware.getWareName());
		//返回一个ware
		return ware;
		
	}
	
	
	
	
	
	/**
	 * 查询配料合同
	 * @return
	 */
	@RequestMapping("selectDos")
	@ResponseBody
	public Map<String,Object> selectDos(String applyId){
		System.out.println("进入方法查询ID为:       "+applyId);
		//调用List
		List<BeyondDos> list=dosService.findByApplydosId(applyId);
		//循环list
		for(int i=0;i<list.size();i++){
			//根据商品
			BeyondDos beyondware=list.get(i);
			System.out.println("配料名为:             "+beyondware.getDosName());
			
		}
		System.out.println("配料集合为:               "+list);
		//new一个Map对象
		Map<String,Object> map=new HashMap<String,Object>();
		map.put("status",200);
		map.put("message","result");
		map.put("data",list);
		//返回map
		return map;
	}
	
	/**
	 * 配料
	 * @param wareId
	 * @return
	 */
	@RequestMapping("addDos")
	@ResponseBody
	public BeyondDos addDos(String dosId){
		System.out.println("配料ID"    +dosId);
		//根据配料ID来查询
		BeyondDos dos=dosService.selectByPrimaryKey(dosId);
		System.out.println("配料名字"     +dos.getDosId());
		//返回一个dos
		return dos;
		
	}
	
}

